package com.github.maojx0630.onebot.monitor;

import lombok.Getter;

import java.util.ArrayList;
import java.util.List;

@Getter
public class MonitorFactory {

  private final List<MsgGroupMonitor> msgGroupMonitors = new ArrayList<>();

  private final List<MsgPrivateMonitor> msgPrivateMonitors = new ArrayList<>();

  private final List<NoticeGroupDecreaseMonitor> noticeGroupDecreaseMonitors = new ArrayList<>();

  private final List<NoticeGroupDecreaseMonitor> noticeGroupIncreaseMonitors = new ArrayList<>();

  public void addMsgGroupMonitor(MsgGroupMonitor monitor) {
    msgGroupMonitors.add(monitor);
  }

  public void addMsgGroupMonitor(MsgGroupMonitor monitor, Integer seq) {
    msgGroupMonitors.add(seq, monitor);
  }

  public void addMsgPrivateMonitor(MsgPrivateMonitor monitor) {
    msgPrivateMonitors.add(monitor);
  }

  public void addMsgPrivateMonitor(MsgPrivateMonitor monitor, Integer seq) {
    msgPrivateMonitors.add(seq, monitor);
  }

  public void addNoticeGroupDecreaseMonitor(NoticeGroupDecreaseMonitor monitor) {
    noticeGroupDecreaseMonitors.add(monitor);
  }

  public void addNoticeGroupDecreaseMonitor(NoticeGroupDecreaseMonitor monitor, Integer seq) {
    noticeGroupDecreaseMonitors.add(seq, monitor);
  }

  public void addNoticeGroupIncreaseMonitor(NoticeGroupDecreaseMonitor monitor) {
    noticeGroupIncreaseMonitors.add(monitor);
  }

  public void addNoticeGroupIncreaseMonitor(NoticeGroupDecreaseMonitor monitor, Integer seq) {
    noticeGroupIncreaseMonitors.add(seq, monitor);
  }

}
